home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cocktail / puma.lha / puma / src / Scanner.md < prev    next >
Text File  |  1992-09-25  |  2KB  |  65 lines

  1. (* $Id: Scanner.md,v 2.3 1992/08/18 09:05:32 grosch rel $ *)
  2.  
  3. DEFINITION MODULE Scanner;
  4.  
  5. IMPORT Strings;
  6.  
  7. (* line 3 "puma.rex" *)
  8.  
  9. FROM StringMem    IMPORT tStringRef;
  10. FROM Idents    IMPORT tIdent    ;
  11. FROM Texts    IMPORT tText    ;
  12. FROM Positions    IMPORT tPosition;
  13.  
  14. TYPE
  15. yyIdent = RECORD Ident: tIdent; END;
  16. yyOperator = RECORD Ident: tIdent; END;
  17. yyIncOperator = RECORD Ident: tIdent; END;
  18. yyTargetBlock = RECORD Text: tText; END;
  19. yyString = RECORD StringRef: tStringRef; END;
  20. yyNumber = RECORD StringRef: tStringRef; END;
  21. yyTargetCode = RECORD StringRef: tStringRef; END;
  22. yyWhiteSpace = RECORD StringRef: tStringRef; END;
  23. (* '::' *) yy9 = RECORD StringRef: tStringRef; END;
  24.  
  25. tScanAttribute = RECORD
  26. Position: tPosition;
  27. CASE : SHORTCARD OF
  28. | 1: Ident: yyIdent;
  29. | 2: Operator: yyOperator;
  30. | 3: IncOperator: yyIncOperator;
  31. | 4: TargetBlock: yyTargetBlock;
  32. | 5: String: yyString;
  33. | 6: Number: yyNumber;
  34. | 7: TargetCode: yyTargetCode;
  35. | 8: WhiteSpace: yyWhiteSpace;
  36. | 9: (* '::' *) yy9: yy9;
  37. END; END;
  38.  
  39. PROCEDURE ErrorAttribute (Token: INTEGER; VAR pAttribute: tScanAttribute);
  40.  
  41.  
  42. PROCEDURE Error        (Text: ARRAY OF CHAR; Position: tPosition);
  43. PROCEDURE ErrorI    (Text: ARRAY OF CHAR; Position: tPosition; Ident: tIdent);
  44. PROCEDURE Warning    (Text: ARRAY OF CHAR; Position: tPosition);
  45. PROCEDURE WarningI    (Text: ARRAY OF CHAR; Position: tPosition; Ident: tIdent);
  46.  
  47.  
  48. CONST EofToken    = 0;
  49.  
  50. VAR TokenLength    : INTEGER;
  51. VAR Attribute    : tScanAttribute;
  52. VAR ScanTabName    : ARRAY [0 .. 127] OF CHAR;
  53. VAR Exit    : PROC;
  54.  
  55. PROCEDURE BeginScanner    ;
  56. PROCEDURE BeginFile    (FileName: ARRAY OF CHAR);
  57. PROCEDURE GetToken    (): INTEGER;
  58. PROCEDURE GetWord    (VAR Word: Strings.tString);
  59. PROCEDURE GetLower    (VAR Word: Strings.tString);
  60. PROCEDURE GetUpper    (VAR Word: Strings.tString);
  61. PROCEDURE CloseFile    ;
  62. PROCEDURE CloseScanner    ;
  63.  
  64. END Scanner.
  65.